package com.xy.bizportdemo.util;

import java.io.InputStream;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;

import com.xy.bizportdemo.inserttool.XyCallback;

/**
 * xml解析的工具类
 * Created by XIAOYUAN on 2016/11/29.
 */
public class XmlPullParseUtil {

    /**
     * 解析获取TAG Name对应的数据
     * 
     * @param instream
     * @param tagName
     * @param callBack
     * @throws Exception
     */
    public static void parseGainDataByTagName(InputStream instream, String[] tagName, XyCallback callBack)
            throws Exception {
        XmlPullParser parser = Xml.newPullParser();// 得到Pull解析器
        parser.setInput(instream, "UTF-8");// 设置下输入流的编码
        int eventType = parser.getEventType();// 得到第一个事件类型

        while (eventType != XmlPullParser.END_DOCUMENT) {// 如果事件类型不是文档结束的话则不断处理事件
            switch (eventType) {
            case (XmlPullParser.END_TAG):// 如果遇到标签结束
                break;
            // case (XmlPullParser.START_DOCUMENT)://如果是文档开始事件
            //
            // break;
            case (XmlPullParser.START_TAG):// 如果遇到标签开始
                String tag = parser.getName();// 获得解析器当前元素的名称
                for (String tn : tagName) {
                    if (tag.equals(tn)) {

                        String phone = parser.getAttributeValue(0);
                        callBack.execute(tag, phone, parser.nextText());

                    }
                }
                // eventType=parser.nextTag();
                break;

            default:
                // eventType=parser.nextTag();//进入下一个事件处理
                break;
            }
            eventType = parser.next();
        }
    }
}
